Network interfaces (e.g. Ethernet NIC, fiber channel, Infiniband) require parsing of incoming packets to detect the priority, class of service and detect the high layer protocols, this information is used to forward the packet to destination queue and CPU or virtual machine (VM), this also helps to offload SW tasks.
Converged Network Adapter supports reception and transmission of multiple protocols at the same time, in some cases the protocols are encapsulated using tunneling protocols (for example FCoE, IP over IP, GRE, etc.)
Modern network adapter also supports many hardware acceleration engines to offload the software driver and the network stack.
Example for such acceleration is IPv4 or TCP checksum offload, this require detection the packet protocols and the protocol header offsets.
In today network environment, where many network protocol exist simultaneously, it is necessary to implement parsing engines that will be flexible enough to support multiple standard simultaneously, will be able to handle proprietary packet implementation and future protocol and will be efficient (data rate, area, power, SW utilization).
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.